import pandas as pd

# 定义DataFrame的列名
columns = ['Timestamp', 'Latitude', 'Longitude', 'Altitude']

# 初始化初始数据列表，确保每个子列表的长度与列名数量一致
initial_data = [
    ['2024-05-15 10:00:00', 37.7749, -122.4194, 50],
    # 可以继续添加更多的数据行
]

# 使用列名创建一个空的DataFrame
df = pd.DataFrame(columns=columns)

# 循环遍历初始数据并添加到DataFrame
for data in initial_data:
    if len(data) == len(columns):  # 确保数据长度与列数匹配
        df.loc[len(df)] = data
    else:
        print("警告：数据行长度与列数不符，已跳过此行。")

# 写入Excel文件
df.to_excel('flight_data.xlsx', index=False)

# 接下来可以调用add_data_to_excel函数继续添加数据

# 动态添加数据函数
def add_data_to_excel(timestamp, lat, lon, alt, filename='flight_data.xlsx'):
    # 创建一个临时的DataFrame来保存新数据
    new_row = pd.DataFrame([{'Timestamp': timestamp, 'Latitude': lat, 'Longitude': lon, 'Altitude': alt}],
                           columns=df.columns)

    # 如果文件已存在，加载现有的数据
    if pd.ExcelFile(filename).sheet_names:
        existing_df = pd.read_excel(filename)
        # 将新数据追加到现有数据
        existing_df = pd.concat([existing_df, new_row])
    else:
        # 文件不存在，直接使用新数据
        existing_df = new_row

    # 保存更新后的数据到Excel
    existing_df.to_excel(filename, index=False)


# 添加新的数据点
add_data_to_excel('2024-05-15 10:30:00', 37.7755, -122.4201, 52)
# 添加更多数据点...
